package com.bjfu.college.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;

/**
 * 
 * @TableName university_intention_record
 */
@TableName(value ="university_intention_record")
@Data
public class UniversityIntentionRecord  implements Serializable {
    /**
     * 
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 招生类别
     */
    private String enrollmentCategory;

    /**
     * 院校代码
     */
    private String institutionCode;

    /**
     * 院校名称
     */
    private String institutionName;

    /**
     * 省份
     */
    private String province;

    /**
     * 城市
     */
    private String city;

    /**
     * 办学性质
     */
    private String schoolProperty;

    /**
     * 院校层次
     */
    private String institutionalLevel;

    /**
     * 专业代码
     */
    private String majorCode;

    /**
     * 专业名称
     */
    private String majorName;

    /**
     * 特殊要求
     */
    private String specialRequirements;

    /**
     * 选科要求
     */
    private String subjectSelectionRequirements;

    /**
     * 新增专业
     */
    private String newMajor;

    /**
     * 学制
     */
    private String schoolingLength;

    /**
     * 招生计划
     */
    private Integer enrollmentPlan;

    /**
     * 学费
     */
    private String tuitionFee;

    /**
     * 专业类
     */
    private String majorClass;

    /**
     * 专业门类
     */
    private String majorCategory;

    /**
     * 学科评估
     */
    private String subjectEvaluation;

    /**
     * 1年前招生计划
     */
    private Integer pastFirstEnrollmentPlan;

    /**
     * 1年前投档计划
     */
    private Integer pastFirstCastingArchivesPlan;

    /**
     * 今年参照分
     */
    private Integer thisYearReferenceScore;

    /**
     * 1年前最低分
     */
    private Integer pastFirstLowestScore;

    /**
     * 1年前最低分位次
     */
    private Integer pastFirstLowestRank;

    /**
     * 2年前最低分
     */
    private Integer pastSecondLowestScore;

    /**
     * 2年前最低分位次
     */
    private Integer pastSecondLowestRank;

    /**
     * 3年前最低分
     */
    private Integer pastThirdLowestScore;

    /**
     * 3年前最低分位次
     */
    private Integer pastThirdLowestRank;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        UniversityIntentionRecord other = (UniversityIntentionRecord) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getEnrollmentCategory() == null ? other.getEnrollmentCategory() == null : this.getEnrollmentCategory().equals(other.getEnrollmentCategory()))
            && (this.getInstitutionCode() == null ? other.getInstitutionCode() == null : this.getInstitutionCode().equals(other.getInstitutionCode()))
            && (this.getInstitutionName() == null ? other.getInstitutionName() == null : this.getInstitutionName().equals(other.getInstitutionName()))
            && (this.getProvince() == null ? other.getProvince() == null : this.getProvince().equals(other.getProvince()))
            && (this.getCity() == null ? other.getCity() == null : this.getCity().equals(other.getCity()))
            && (this.getSchoolProperty() == null ? other.getSchoolProperty() == null : this.getSchoolProperty().equals(other.getSchoolProperty()))
            && (this.getInstitutionalLevel() == null ? other.getInstitutionalLevel() == null : this.getInstitutionalLevel().equals(other.getInstitutionalLevel()))
            && (this.getMajorCode() == null ? other.getMajorCode() == null : this.getMajorCode().equals(other.getMajorCode()))
            && (this.getMajorName() == null ? other.getMajorName() == null : this.getMajorName().equals(other.getMajorName()))
            && (this.getSpecialRequirements() == null ? other.getSpecialRequirements() == null : this.getSpecialRequirements().equals(other.getSpecialRequirements()))
            && (this.getSubjectSelectionRequirements() == null ? other.getSubjectSelectionRequirements() == null : this.getSubjectSelectionRequirements().equals(other.getSubjectSelectionRequirements()))
            && (this.getNewMajor() == null ? other.getNewMajor() == null : this.getNewMajor().equals(other.getNewMajor()))
            && (this.getSchoolingLength() == null ? other.getSchoolingLength() == null : this.getSchoolingLength().equals(other.getSchoolingLength()))
            && (this.getEnrollmentPlan() == null ? other.getEnrollmentPlan() == null : this.getEnrollmentPlan().equals(other.getEnrollmentPlan()))
            && (this.getTuitionFee() == null ? other.getTuitionFee() == null : this.getTuitionFee().equals(other.getTuitionFee()))
            && (this.getMajorClass() == null ? other.getMajorClass() == null : this.getMajorClass().equals(other.getMajorClass()))
            && (this.getMajorCategory() == null ? other.getMajorCategory() == null : this.getMajorCategory().equals(other.getMajorCategory()))
            && (this.getSubjectEvaluation() == null ? other.getSubjectEvaluation() == null : this.getSubjectEvaluation().equals(other.getSubjectEvaluation()))
            && (this.getPastFirstEnrollmentPlan() == null ? other.getPastFirstEnrollmentPlan() == null : this.getPastFirstEnrollmentPlan().equals(other.getPastFirstEnrollmentPlan()))
            && (this.getPastFirstCastingArchivesPlan() == null ? other.getPastFirstCastingArchivesPlan() == null : this.getPastFirstCastingArchivesPlan().equals(other.getPastFirstCastingArchivesPlan()))
            && (this.getThisYearReferenceScore() == null ? other.getThisYearReferenceScore() == null : this.getThisYearReferenceScore().equals(other.getThisYearReferenceScore()))
            && (this.getPastFirstLowestScore() == null ? other.getPastFirstLowestScore() == null : this.getPastFirstLowestScore().equals(other.getPastFirstLowestScore()))
            && (this.getPastFirstLowestRank() == null ? other.getPastFirstLowestRank() == null : this.getPastFirstLowestRank().equals(other.getPastFirstLowestRank()))
            && (this.getPastSecondLowestScore() == null ? other.getPastSecondLowestScore() == null : this.getPastSecondLowestScore().equals(other.getPastSecondLowestScore()))
            && (this.getPastSecondLowestRank() == null ? other.getPastSecondLowestRank() == null : this.getPastSecondLowestRank().equals(other.getPastSecondLowestRank()))
            && (this.getPastThirdLowestScore() == null ? other.getPastThirdLowestScore() == null : this.getPastThirdLowestScore().equals(other.getPastThirdLowestScore()))
            && (this.getPastThirdLowestRank() == null ? other.getPastThirdLowestRank() == null : this.getPastThirdLowestRank().equals(other.getPastThirdLowestRank()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getEnrollmentCategory() == null) ? 0 : getEnrollmentCategory().hashCode());
        result = prime * result + ((getInstitutionCode() == null) ? 0 : getInstitutionCode().hashCode());
        result = prime * result + ((getInstitutionName() == null) ? 0 : getInstitutionName().hashCode());
        result = prime * result + ((getProvince() == null) ? 0 : getProvince().hashCode());
        result = prime * result + ((getCity() == null) ? 0 : getCity().hashCode());
        result = prime * result + ((getSchoolProperty() == null) ? 0 : getSchoolProperty().hashCode());
        result = prime * result + ((getInstitutionalLevel() == null) ? 0 : getInstitutionalLevel().hashCode());
        result = prime * result + ((getMajorCode() == null) ? 0 : getMajorCode().hashCode());
        result = prime * result + ((getMajorName() == null) ? 0 : getMajorName().hashCode());
        result = prime * result + ((getSpecialRequirements() == null) ? 0 : getSpecialRequirements().hashCode());
        result = prime * result + ((getSubjectSelectionRequirements() == null) ? 0 : getSubjectSelectionRequirements().hashCode());
        result = prime * result + ((getNewMajor() == null) ? 0 : getNewMajor().hashCode());
        result = prime * result + ((getSchoolingLength() == null) ? 0 : getSchoolingLength().hashCode());
        result = prime * result + ((getEnrollmentPlan() == null) ? 0 : getEnrollmentPlan().hashCode());
        result = prime * result + ((getTuitionFee() == null) ? 0 : getTuitionFee().hashCode());
        result = prime * result + ((getMajorClass() == null) ? 0 : getMajorClass().hashCode());
        result = prime * result + ((getMajorCategory() == null) ? 0 : getMajorCategory().hashCode());
        result = prime * result + ((getSubjectEvaluation() == null) ? 0 : getSubjectEvaluation().hashCode());
        result = prime * result + ((getPastFirstEnrollmentPlan() == null) ? 0 : getPastFirstEnrollmentPlan().hashCode());
        result = prime * result + ((getPastFirstCastingArchivesPlan() == null) ? 0 : getPastFirstCastingArchivesPlan().hashCode());
        result = prime * result + ((getThisYearReferenceScore() == null) ? 0 : getThisYearReferenceScore().hashCode());
        result = prime * result + ((getPastFirstLowestScore() == null) ? 0 : getPastFirstLowestScore().hashCode());
        result = prime * result + ((getPastFirstLowestRank() == null) ? 0 : getPastFirstLowestRank().hashCode());
        result = prime * result + ((getPastSecondLowestScore() == null) ? 0 : getPastSecondLowestScore().hashCode());
        result = prime * result + ((getPastSecondLowestRank() == null) ? 0 : getPastSecondLowestRank().hashCode());
        result = prime * result + ((getPastThirdLowestScore() == null) ? 0 : getPastThirdLowestScore().hashCode());
        result = prime * result + ((getPastThirdLowestRank() == null) ? 0 : getPastThirdLowestRank().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", enrollmentCategory=").append(enrollmentCategory);
        sb.append(", institutionCode=").append(institutionCode);
        sb.append(", institutionName=").append(institutionName);
        sb.append(", province=").append(province);
        sb.append(", city=").append(city);
        sb.append(", schoolProperty=").append(schoolProperty);
        sb.append(", institutionalLevel=").append(institutionalLevel);
        sb.append(", majorCode=").append(majorCode);
        sb.append(", majorName=").append(majorName);
        sb.append(", specialRequirements=").append(specialRequirements);
        sb.append(", subjectSelectionRequirements=").append(subjectSelectionRequirements);
        sb.append(", newMajor=").append(newMajor);
        sb.append(", schoolingLength=").append(schoolingLength);
        sb.append(", enrollmentPlan=").append(enrollmentPlan);
        sb.append(", tuitionFee=").append(tuitionFee);
        sb.append(", majorClass=").append(majorClass);
        sb.append(", majorCategory=").append(majorCategory);
        sb.append(", subjectEvaluation=").append(subjectEvaluation);
        sb.append(", pastFirstEnrollmentPlan=").append(pastFirstEnrollmentPlan);
        sb.append(", pastFirstCastingArchivesPlan=").append(pastFirstCastingArchivesPlan);
        sb.append(", thisYearReferenceScore=").append(thisYearReferenceScore);
        sb.append(", pastFirstLowestScore=").append(pastFirstLowestScore);
        sb.append(", pastFirstLowestRank=").append(pastFirstLowestRank);
        sb.append(", pastSecondLowestScore=").append(pastSecondLowestScore);
        sb.append(", pastSecondLowestRank=").append(pastSecondLowestRank);
        sb.append(", pastThirdLowestScore=").append(pastThirdLowestScore);
        sb.append(", pastThirdLowestRank=").append(pastThirdLowestRank);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}